package com.huanf;

import com.huanf.service.UserService;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.concurrent.CountDownLatch;

/**
 * @author: 35238
 * 功能:
 * 时间: 2023-12-28 22:05
 */
public class ComsumerApplication {

    public static void main(String[] args) throws Exception{
        //读取刚刚写好的applicationContext-consumer.xml配置文件，让这个配置文件交给spring管理
        ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("applicationContext-consumer.xml");
        //yyuserService是在applicationContext-consumer.xml文件里面写的id值(可随便写)，表示你拿到的外部模块的对象
        UserService yyuserService = (UserService) app.getBean("yyuserService");

        //尝试能不能调用外部的方法(provider模块的UserServiceImpl类的login方法)，运行ComsumerApplication引导类之前，必须要先运行provider模块的引导类
        yyuserService.login("张三", "123456");
        System.out.println("我是comsumer模块，我调用了provider模块的login方法");

        //让该模块(提供者)一直运行，并不是运行就结束
        new CountDownLatch(1).await();

        //让该模块(提供者)一直运行，也可以用下面那行，效果是一样的
        //System.in.read();

        //运行comsumer模块的引导类之后，会同时有如下输出
        //1、comsumer模块的控制台输出 => "我是comsumer模块，我调用了provider模块的login方法"
        //2、provider模块的控制台输出 => "我是dubbo-provider模块，我实现了dubbo-api模块的UserService的login方法，欢迎: 张三，你的密码是: 123456"

    }

}
